<?php
/**
 * Класс Controller_Profile отвечает за обработку страниц профиля пользователя
 * @author Mike
 */
class Controller_Profile extends Controller_Base {
	
	public function action() {
		switch($this->arrRequest[1]) {
			case 'edit':
				$objUser = User_Seance::getUser();
				if(!$objUser->id) throw new Exception('', 403);	// Если пользователь незалогинен
				if(isset($_GET['opt']) && $_GET['opt'] == 'interests') $this->actionEditInterests($objUser);	// Редактирование интересов пользователя
				elseif(isset($_GET['opt']) && $_GET['opt'] == 'search') $this->actionEditSearch($objUser);	// Редактирование параметров поиска пользователя
			 	else $this->actionEditProfile($objUser);	// Редактирование основной информации пользователя
				break;
			default:
				throw new Exception('', 404);
				break;
		}
	}
		
	
	/**
	 * Главная страница авторизованного пользователя
	 * @param User_User $objUser - объект пользователя
	 */
	public function getMyPage(User_User $objUser) {
		$this->title = $objUser->getField('first_name') . ' ' . $objUser->getField('last_name');
		
		$this->showHeader();
			View_Profile::showMypage($objUser);
		$this->showFooter();
	}
	
	/**
	 * Страница чужого пользователя
	 * @param User_User $objUser - объект пользователя
	 */
	public function getForeignPage(User_User $objUser) {
		$this->title = $objUser->getField('first_name') . $objUser->getField('last_name');
		
		$this->showHeader();
			View_Profile::showForeignPage($objUser);
		$this->showFooter();
	}
	
	/**
	 * Страница редактирования профиля
	 * @param User_User $objUser - объект пользователя
	 */
	public function actionEditProfile(User_User $objUser) {
		if (isset($_POST['User_User'])) {
			$avaName = $objUser->getField('avatar_filename');
			$editId = $_POST['User_User']['ID_user'];
			if ($editId == $objUser->id) {
				$objUser = new User_User($_POST['User_User']);
				if ($objUser->save()) {
					$objUser->setField('avatar_filename', $avaName); // Делаем это, потому что после создания объекта USer от массива пост, в нём не будет содержаться поля имени авы
					echo 123;
				}
			}
		}
		$this->bodyAttr = 'profile-edit';
		$this->title = 'Редактирование профиля';
		
		$this->showHeader();
			View_Profile::showEditProfileForm($objUser);
		$this->showFooter();
	}
	
	/**
	 * Редактирование интересов пользователя(вкладка "Интересы" в профиле)
	 * 
	 * @param User_User $objUser - объект пользователя
	 */
	public function actionEditInterests(User_User $objUser) {
		if (isset($_POST['User_User'])) {
			$editId = $_POST['User_User']['ID_user'];
			if ($editId == $objUser->id) {
				$objUser = new User_User($_POST['User_User']);
				if ($objUser->save()) echo 123;
			}
		}
		//$this->bodyAttr = 'profile-edit';
		$this->title = 'Редактирование профиля';
	
		$this->showHeader();
			View_Profile::showEditInterestsForm($objUser);
		$this->showFooter();
	}
	
	/**
	 * Редактирование параметров поиска пользователя(вкладка "Поиск" в профиле)
	 *
	 * @param User_User $objUser - объект пользователя
	 */
	public function actionEditSearch(User_User $objUser) {
		if (isset($_POST['User_User'])) {
			$editId = $_POST['User_User']['ID_user'];
			if ($editId == $objUser->id) {
				unset($_POST['User_User']['ID_user']);
				$objUser->EditSearchParameters();
			}
		}
		
		$this->bodyAttr = 'profile-search-edit';
		$this->title = 'Редактирование профиля';
	
		$this->showHeader();
			View_Profile::showEditSearchForm($objUser);
		$this->showFooter();
	}
}
?>